#===istalismanplugin===
# -*- coding: utf-8 -*-

#  Talisman plugin
#  weather_plugin.py

#  Автор: Gigabyte
#  www: http://jabbrik.ru

import urllib
from xml.dom import minidom

def weather_get(type, source, parameters):
        if not parameters:
                reply(type, source, u'Город?')
                return
        REKLAMA = [u'Погода предоставлена http://rp5.ru',
                   u'Погода предоставлена http://rp5.ru',
                   u'Погода предоставлена http://rp5.ru']

        CITY = urllib.quote(parameters.encode('utf8'))
        link = u'http://pda.rp5.ru/?lang=ru&q=%CITY%'.replace('%CITY%', CITY)
        try:
                r = urllib.urlopen(link)
                target = r.read()
                r.close()
        except:
                reply(type, source, u'Не возможно установить соединение, попробуйте позже.')
                return
        if target.count('1. <a href="'):
                try:
                        od = re.search('1. <a href="',target)
                        b1 = target[od.end():]
                        b1 = b1[:re.search('">',b1).start()]
                        kod = b1
                except:
                        reply(type, source, u'Неизвестная ошибка (ошибка парсинга страницы поиска)')
                        return
        else:
                reply(type, source, u'Не найден населенный пункт')
                return

        try:
                r = urllib.urlopen('http://rp5.ru/rss/%KOD%'.replace('%KOD%', kod))
                dom = minidom.parse(r)
        except:
                reply(type, source, u'Не возможно установить соединение, попробуйте позже.')
                return

        RES = ''
        ret = ''
        try:
                for x in dom.getElementsByTagName('item'):
                        mtiile = x.getElementsByTagName('title')[0].firstChild.data.strip().split(': ', 1)
                        ww = x.getElementsByTagName('description')[0].firstChild.data.strip()
                        ww = ww.replace(',', '\n')
                        ww = ww.replace('%)', '% )')
                        ret += '['+mtiile[1]+u']\nТемпература: %s\n' % ww
                        ret += u' - - - - - - - - - - \n'
                RES = u'Погода в городе '+mtiile[0]+'\n - - - - - - - - - - \n'+ret
                RKL = random.choice(REKLAMA)
                reply(type, source, RES+'\n'+RKL)
        except:
                reply(type, source, u'Неизвестная ошибка! Скорее всего это косяк бета версии т.к. некоторые украинские города надо грузить с другого ресурса.')





register_command_handler(weather_get, 'погода', ['new', 'все', 'инфо'], 10, 'Погода с сайта rp5.ru', 'Погода <город>', ['погода Новосибирск'])
